package controlador;

import interfaces.IObservadorControl;
import interfaces.IObservadorPantalla;

import java.io.IOException;
import java.rmi.NotBoundException;
import java.util.ArrayList;
import java.util.LinkedList;

import client.TFCliente;

import constantes.ICTE;
import server.TFServer;


public class Controlador implements IObservadorPantalla{
	
	protected TFServer server = null;
	protected int nJugadores = 0;
	protected ArrayList<TFCliente> clientes = null;
	protected LinkedList<IObservadorControl> observadores = null;
	
	
	public Controlador(){
		observadores = new LinkedList<IObservadorControl>();
	}
	
	public void addObserver(IObservadorControl ob){
		observadores.add(ob);
	}
	public void iniciar(short modoControl){
		
		switch (modoControl){
			case ICTE.MODO_SERVER : observadores.getFirst().cargarPantallaServer();
									break;
									
			case ICTE.MODO_CLIENTE : observadores.getFirst().cargarPantallaCliente();
			                        break;
		}
		
	}
	
	public void iniciarServer(){
		
		//clientes = new ArrayList<TFCliente>();
		server = new TFServer(this, nJugadores, ICTE.MODO_TEAM);
		try {
			server.start();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (NotBoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}		
	}

	public void iniciarCliente(String nombre, int port){
				
		TFCliente cliente = new TFCliente(nombre, port);	
		
	}
	
	public void cargarPantalla(String letra){
		
	}
}
